// Autor: Juan Manuel Chaguendo Guerrero
package cliente;

import java.io.*;
import org.omg.CORBA.ORB;
import org.omg.CORBA.ORBPackage.InvalidName;
import org.omg.CORBA.Object;
import org.omg.CosNaming.NamingContextExt;
import org.omg.CosNaming.NamingContextExtHelper;
import org.omg.CosNaming.NamingContextPackage.CannotProceed;
import org.omg.CosNaming.NamingContextPackage.NotFound;
import sop_corba.ParserR;
import sop_corba.ParserRHelper;


public class ClienteP
{
    private static BufferedReader buf;
    private static String entrada;

    public ClienteP()
    {
    }

    public static void main(String args[]) throws InvalidName, NotFound, CannotProceed
    {
        
       
	int op=0,i=0,j=0;
        try
        {
            ORB orb = ORB.init(args, ((java.util.Properties) (null)));
            org.omg.CORBA.Object obj = orb.resolve_initial_references("NameService");
            NamingContextExt namingcontextext = NamingContextExtHelper.narrow(obj);
            String s = "parserR";
            ParserR parserr = ParserRHelper.narrow(namingcontextext.resolve_str(s));
            buf = new BufferedReader(new InputStreamReader(System.in));
             
			
    do
    {
            System.out.println("\n	 Menu 	\n");
            System.out.println("1. Ingresar Nombre\n");
            System.out.println("2. Obtener Extencion \n");
            System.out.println("3. Nombre del Archvo \n");
            System.out.println("4. Obtener Nombre Variable Path\n");
            System.out.println("5. Salir\n");
            System.out.println("------------------------------------\n");
            System.out.println("Digite una opcion: ");
            try
            {
                    i = Integer.parseInt(buf.readLine());
            }
            catch(IOException ioexception) { }
                                
                                
                switch(i)
                {
                case 1: 
                    
                    System.out.println("Para que sistema operativo(windows=1 o linux=0):");
                    int sis = Integer.parseInt(buf.readLine());
                    if(sis == 1)
                        parserr.setSeparador('\\');
                    else
                        parserr.setSeparador('/');
                    System.out.println("Digite el nombre del recurso: ");
                    entrada = buf.readLine();
                    j = parserr.setNombreRecurso(entrada);
                    
                    break;

                case 2: 
                    
                    if(j == 1){
                        System.out.println("\nExtension: ");
                        System.out.println(parserr.extension().toString());
                        }
                    else
                        System.out.println("No hay nombre de recurso");
                  
                    break;

                case 3: 
                    
                    if(j == 1)
                        {
                        System.out.println("\nNombre del archivo: ");
                        System.out.println(parserr.nombreArchivo().toString());
                        }
                        
                    else
                        System.out.println("No hay nombre de recurso");
                  
                    break;

                case 4: 
                    
                    if(j == 1)
                        {
                        System.out.println("\nPath del archivo: ");
                        System.out.println(parserr.path().toString());
                        }
                        
                    else
                        System.out.println("No hay nombre de recurso");
                    
                    break;

                case 5: 
                    break;

                default:
                    System.out.println("Comando no valido");
                    break;
                }      
			
            }while(i!=5); 

        }
        catch(Exception e)
        {
              System.out.println("ERROR : " + e) ;
              e.printStackTrace(System.out);
        }
    }
   
   
}